home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
progtool
/
modula2
/
module
/
sounds.def
< prev
next >
Wrap
Text File
|
1995-11-25
|
4KB
|
76 lines
(******************************************************************************)
(* This MODULE is Public Domain. Copy me like a beast! *)
(* Christian Ledermann *)
(* Wölfelkofen 2 *)
(* 84166 Adlkofen *)
(******************************************************************************)
(* *)
(* Started: 20.12.92 03:54:30 *)
(* Version: 20.12.89 01:054:12:54 *)
(* *)
(******************************************************************************)
(* *)
(* Diese Software ist ohne jede Garantie. Ich verspreche *)
(* keinerlei Wartung und übernehme keine Verantwortung für Schäden die *)
(* durch die Benutzung dieses Programmes entstehen. *)
(* Jegliche Ersatzansprüche lehne ich ab. *)
(* *)
(******************************************************************************)
DEFINITION MODULE Sounds;
(************************************************************************)
(* Soundprogramiereung ganz einfach ! *)
(* ähnlich wie in OMIKRON o. GFA Basic *)
(* Christian Ledermann 4/93 *)
(************************************************************************)
TYPE ChanelFlag = (OneOff,TwoOff,ThreeOff);
Chanel = SET OF ChanelFlag;
CONST AllOn = Chanel{};
AllOff = Chanel{OneOff..ThreeOff};
(* Kanal:= Kanal 1..3 des Soundchips *)
(* 125000 / Frequenz := Periode *)
PROCEDURE Sound(Kanal,Periode:CARDINAL);(* Periode 0..4095 *)
(* Hüllkurve 1..3,9 linear fallend dann 0 \____ *)
(* Hüllkurve 4..7,15 linear steigend dann 0 /|____ *)
(* Hüllkurve 8 Sägezahn steigend \|\|\|\ *)
(* Hüllkurve 10 Dreieck anfangs Fallend \/\/\/\ *)
(* " 11 linear fallend dann laut \|----- *)
(* " 12 Sägezahn steigend /|/|/|/| *)
(* " 13 linear steigend dann laut /----- *)
(* " 14 Dreieck anfangs steigend /\/\/\ *)
PROCEDURE Wave(Kanal,(*Hüll-*)Kurve, Dauer :CARDINAL);
(* Dauer: Werte von 0..65536 möglich *)
PROCEDURE Volume(Kanal,Vol:CARDINAL); (* Werte von 0..15 möglich *)
PROCEDURE Noise(Hoehe:CARDINAL); (* Werte von 0..31 möglich *)
PROCEDURE SetSoundAndNoise(NoiseChanels,SoundChanels:Chanel);
(* Mit NoiseChanels bzw SoundChanels wird angegeben *)
(* welche der Ton- oder Rauschkanäle ausgeschaltet !! *)
(* werden *)
(* Zu jedem Tonkanal kann Rauschen dazugemischt werden *)
PROCEDURE SoundAndNoiseOnOff(NoiseFlag,SoundFlag:CARDINAL);
(* Eigendlich dieselbe PROCEDURE wie SetSoundAndNoise *)
(* Nur das hier ein CARDINAL anstelle des SETs *)
(* übergeben wird. *)
(* KanalFlag := 0 => Kanal 1, 2 u. 3 an *) (*000*)
(* KanalFlag := 1 => Kanal 1 aus, 2 u. 3 an *) (*001*)
(* KanalFlag := 2 => Kanal 2 aus, 1 u. 3 an *) (*010*)
(* KanalFlag := 3 => Kanal 1 u. 2 aus, 3 an *) (*011*)
(* KanalFlag := 4 => Kanal 3 aus, 1 u. 2 an *) (*100*)
(* KanalFlag := 5 => Kanal 1 u. 3 aus, 2 an *) (*101*)
(* KanalFlag := 6 => Kanal 3 u. 2 aus, 1 an *) (*110*)
(* KanalFlag := 7 => Kanal 1, 2 u. 3 aus *) (*111*)
END Sounds.